QA: run_qa v1.6 form + ExplicitImports#117
Merged
ChrisRackauckas merged 2 commits intoJul 2, 2026
Merged
Conversation
Convert the hand-rolled test/qa/qa.jl (Aqua.test_all + Aqua.test_ambiguities +
ExplicitImports check_no_implicit/stale) to the SciMLTesting 1.6 run_qa form with
ExplicitImports enabled (all 6 checks).
- explicit_imports = true runs the 6 EI checks (4 standard + 2 public-API).
- Preserve the genuine Aqua tweak: project_extras = false (root [extras]/[targets]
carries only Test; real test deps live in test/Project.toml under the grouped
folder model, so the root-vs-test consistency check does not apply).
- The old ambiguities=false + separate test_ambiguities split is collapsed:
run_qa's default Aqua.test_all runs (and passes) the ambiguities sub-check.
- Two public-API EI checks failed on OTHER packages' non-public names; resolved by
ei_kwargs ignore-lists (no @test_broken needed):
all_qualified_accesses_are_public: AutoSpecialize (SciMLBase);
each_point/each_point_index/get_centroid/get_edge_midpoints/
has_boundary_nodes/has_ghost_triangles/has_vertex/is_ghost_vertex/
num_points/num_segments (DelaunayTriangulation); front/tail (Base);
init/solve (CommonSolve).
all_explicit_imports_are_public: solve (CommonSolve's canonical extension
point, imported + re-exported).
- test/qa/Project.toml: SciMLTesting compat -> "1.6"; drop ExplicitImports
(transitive via SciMLTesting); keep Aqua (ambiguities child-proc needs it a
direct dep); keep SafeTestsets (the run_tests @safetestset body wrapper does
`using SafeTestsets` under the active qa sub-env).
- .gitignore: ignore the CI-generated test/qa/Manifest.toml.
Verified locally vs released SciMLTesting 1.6.0 via the run_tests harness
(GROUP=QA): QA 16/16 pass, 0 fail / 0 error / 0 broken.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SciMLTesting 1.7.0 runs the two public-API checks
(check_all_qualified_accesses_are_public + check_all_explicit_imports_are_public)
only on Julia >= 1.11, and the base libs have since made the relevant names
public, so the per-repo ignore-lists are now redundant.
- Empty both public-API ignore-lists and drop the now-empty `ei_kwargs`:
all_qualified_accesses_are_public: AutoSpecialize (SciMLBase 3.24.0);
each_point / each_point_index / get_centroid / get_edge_midpoints /
has_boundary_nodes / has_ghost_triangles / has_vertex / is_ghost_vertex /
num_points / num_segments (DelaunayTriangulation 1.6.6); front / tail
(Base, public on >= 1.11); init / solve (CommonSolve 0.2.9).
all_explicit_imports_are_public: solve (CommonSolve 0.2.9).
- Keep the genuine Aqua tweak `project_extras = false` untouched.
- SciMLTesting compat "1.6" caret already admits 1.7; root caret compat already
admits SciMLBase 3.24.0 / CommonSolve 0.2.9, so no Project.toml change needed.
qa.jl is now `run_qa(FiniteVolumeMethod; explicit_imports = true,
aqua_kwargs = (; project_extras = false))` — no EI ignores, no ei_broken.
Verified against the registered releases (Pkg-resolved, no dev): SciMLTesting
1.7.0, SciMLBase 3.24.0, CommonSolve 0.2.9, DelaunayTriangulation 1.6.6.
- Julia 1.12 (public checks RUN): QA 16/16 pass, 0 fail/0 error/0 broken
(the two public-API checks pass with no ignore; ispublic=true for every name).
- Julia 1.10 LTS (public checks SKIPPED by SciMLTesting 1.7): QA 14/14 pass.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ignore until reviewed by @ChrisRackauckas.
Brings this repo's QA onto the SciMLTesting 1.6
run_qaform with ExplicitImports enabled.What changed
test/qa/qa.jl: hand-rolledAqua.test_all+Aqua.test_ambiguities+ twoExplicitImportschecks → singlerun_qa(FiniteVolumeMethod; explicit_imports = true, ...).ambiguities = false+ separateAqua.test_ambiguitiessplit is collapsed:run_qa's defaultAqua.test_allruns (and passes) the ambiguities sub-check.project_extras = false: the rootProject.tomlcarries onlyTestin[extras]/[targets]; the real test deps live intest/Project.tomlunder the grouped-tests folder model, so the root-vs-test consistency check does not apply.test/qa/Project.toml:SciMLTestingcompat →"1.6"; droppedExplicitImports(transitive via SciMLTesting); keptAqua(the ambiguities child-process needs it a direct dep) andSafeTestsets(therun_tests@safetestsetbody wrapper doesusing SafeTestsetsunder the active QA sub-env)..gitignore: ignore the CI-generatedtest/qa/Manifest.toml.ExplicitImports findings (all 6 checks)
no_implicit_imports,no_stale_explicit_imports,all_explicit_imports_via_owners,all_qualified_accesses_via_owners— pass as-is.all_qualified_accesses_are_public— failed on other packages' non-public names; ignored viaei_kwargs(each goes public as its base lib releases):AutoSpecialize— SciMLBaseeach_point,each_point_index,get_centroid,get_edge_midpoints,has_boundary_nodes,has_ghost_triangles,has_vertex,is_ghost_vertex,num_points,num_segments— DelaunayTriangulationfront,tail— Baseinit,solve— CommonSolveall_explicit_imports_are_public— failed onsolve(CommonSolve's canonical, non-public extension point that FVM imports and re-exports); ignored.No
@test_broken/jet_broken/ei_brokenneeded — every finding is a clean FIX (collapse) or IGNORE. No JET (the prior qa.jl had none).Verification
Run locally against released SciMLTesting 1.6.0 (Pkg-resolved, no dev-from-branch) through the real
run_testsharness withGROUP=QA:0 fail / 0 error / 0 broken.
🤖 Generated with Claude Code